/*
 *  ConnectionHandler.h
 *  SaskuServer
 *
 *  Created by Einar Pius on 13/07/2008.
 *  Copyright 2008 __MyCompanyName__. All rights reserved.
 *
 */

#ifndef CONNECTION_HANDLER_H
#define CONNECTION_HANDLER_H

#include <Poco/AutoPtr.h>
#include <Poco/Net/DialogSocket.h>
#include <Poco/Net/SocketNotification.h>
#include <Poco/Net/SocketReactor.h>
#include <Poco/Net/StreamSocket.h>

class ConnectionHandler
{
public:
	
	ConnectionHandler(const Poco::Net::StreamSocket& socket, Poco::Net::SocketReactor& reactor);
	~ConnectionHandler();
	
	void onError(const Poco::AutoPtr<Poco::Net::ErrorNotification>& notification);
	void onReadable(const Poco::AutoPtr<Poco::Net::ReadableNotification>& notification);
	void onShutdown(const Poco::AutoPtr<Poco::Net::ShutdownNotification>& notification);
	void onTimeout(const Poco::AutoPtr<Poco::Net::TimeoutNotification>& notification);
	
private:
	
	ConnectionHandler(const ConnectionHandler& other);
	ConnectionHandler& operator=(const ConnectionHandler& other);
	
	Poco::Net::SocketReactor&	reactor;
	Poco::Net::DialogSocket		socket;
};

#endif // CONNECTION_HANDLER_H
